As computer network technology matures, enterprise-wide networks are evolving from simple, isolated local area networks into complex distributed networks. Today's larger enterprise-wide networks include hundreds of nodes comprising computers and network devices capable of carrying out a variety of tasks. Examples of network nodes include personal computers (workstations) running application software, printers, scanners, facsimile machines, plotters, file servers, external network communication interfaces, etc.
The increased number of nodes within enterprise-wide networks, as well as the increased breadth of configuration information maintained for such nodes, raises a need to automate network device/node discovery. Device discovery involves populating resource information tables with information defining particular attached devices. Such information can include by way of example: location (e.g., the TCP/IP network address/port of the resource, the HTTP URL, etc.), model/manufacturer name, protocols supported, configurations (for example, resource model, command set, network protocol, and memory size), and operational statuses (e.g., good, poor, or malfunction). Such discovery facilitates advertising resource locations (addresses) to requesting clients, configuring nodes for network communication, and managing the nodes' operation. Automated network device discovery facilitates discovering network resources and storing such information in a manner that enables client nodes to search for and gain access to shared resources in potentially very large enterprise-wide networks.
In many instances enterprise-wide networks are divided into subnets. Such networks are divided into subnets for a variety of reasons. One reason is cost. Enterprise-wide networks in many instances are spread over large geographic regions—even across multiple continents. From a cost perspective, it is impractical to maintain a permanent, fully functional link between nodes located across such large distances. Networks comprising multiple subnets temporarily enable communication between nodes on distinct subnets by activating bridges that link the two subnets on an as needed basis.
Another reason to divide a network into subnets is performance. Long-distance wide area network links generally support substantially lower bandwidth than local area networks. Furthermore, request conflicts and increased sharing of available bandwidth can lead to unacceptable communication delays as more communicating nodes are added to a network link. In the case of a link that allows asynchronous transmission requests, the likelihood of colliding requests increases. Even in cases where collision avoidance techniques are used, for example when each node is assigned a particular time slot in which to request access to the link to complete a transmission, the effective transfer rate can become unacceptably low when too many requestors are present. Thus, in cases where a large number of nodes communicate with one another relatively frequently, each communicating node on the shared link is allocated substantially less bandwidth than is generally needed by the nodes.
However, the above problems associated with very large, non-segmented networks can be addressed in many instances by creating subnets. Dividing a large network into subnets raises penetrable barriers between the groups of nodes that make up each of the subnets. Communications from a first node addressed to a second node within a subnet generally are not passed outside the subnet within which the communications originate. In order to pass outside the subnet a sending node generates a message with an address that references another subnet. Such barriers achieve reductions in unnecessary transmissions outside the network. However, such barriers inhibit device discovery over a network. The degree to which the subnet barriers can inhibit or unduly complicate device discovery outside a subnet is addressed herein below with reference to known discovery methods.
Resources connected to a network may comply with differing communication protocols. Examples of such protocols include Transport Control Protocol over Internet Protocol (TCP/IP), or Universal Plug and Play (UPnP). Moreover, the resources may associate with disparate operating systems. For example, a networked printer may be associated with a printer server that operates Windows NT in one subnet, whereas a networked scanner may be associated with another printer server that operates Linux in another subnet. In some cases network device vendors provide means for facilitating discovery of their devices that are independent of the devices' operating system environments.
An exemplary enterprise-wide distributed network links multiple subnets together. Each subnet is associated with security principle, which determines groups of users who have access to the subnet. Different subnets are associated with separate security principles. Thus, a client in a subnet may not be allowed to discover a resource in a subnet that has a different security principle. Furthermore, a subnet may reside in a remote geographical location that cannot be reached by a multicast message. Consequently, a client in one subnet may not be able to search resources in a remote subnet, even though the two subnets have the same security principle.
A number of network device discovery methods are utilized in networks. Service Location Protocol (SLP) is an IETF standard that provides a scalable framework for automatic resource discovery on Internet Protocol networks. It bases its discovery mechanism on service attributes, which are essentially different ways of describing a service.
Universal Plug and Play (UPnP) is an evolving architecture developed by MICROSOFT to extend an original MICROSOFT Plug and Play peripheral model to a network environment including many network devices supplied by different vendors. UPnP operates primarily at low level network protocol layers, for example, the TCP/IP layer. UPnP uses a Simple Service Discover Protocol (SSDP) to discover services on Internet Protocol based networks.